In the field of telecommunications processing, the development of the private branch exchange (PBX) provided medium to large size enterprises with the ability to provide numerous telephony services without relying upon a central carrier for the provision of the services. Thus, a PBX could provide a medium to large sized enterprise with the ability to provide employees extensions from a central number, each extension being served by a voicemail or other telephony service, without relying upon the telephone service carrier to provide these services. PBX equipment is dedicated equipment designed to service only standard telephony needs. Although this provided a cost effective solution for a number of companies, standard PBX systems are too costly for smaller enterprises, and do not provide the level of telephony service functionality required by many industries.
To provide a simpler solution aimed at smaller markets, standard personal computing platforms have been used as the basis for telephony services. These systems have typically relied upon dedicated expansion cards to provide both a connection to the telephone network (or to a PBX served network) and to provide much of the call processing required. A number of drawbacks to this solution have arisen. Dedicated processors, or digital signal processors (DSP), are typically required on the interface cards as operating systems such as Microsoft Windows XP, Linux and Apple's OS X are not truly designed to perform real time processing on asynchronous streaming data. The dedicated processors are provided on the expansion cards, and typically require a dedicated memory on the card as well. This increases the cost of the card, and also has other adverse side effects including increasing the heat generated in the computer chassis.
In many applications, personal computers with the dedicated expansion cards are used to perform a number of telephony and non-telephony activities. These systems are often used to process the audio in a number of ways, including call logging and recording. Furthermore, the resources of the computer can be used for other telephony functions, such as using the hard drive of the personal computer as storage for both call recording and voice messaging services. The programmability of the personal computer allows monitoring and other related functions to be triggered by any number of variables including time of day, the number dialled, the number a call is received from, the detection of signalling tones originating from either the local or remote phone, and other such variables that will be apparent to those skilled in the art.
These systems can also be deployed in environments such as call centers, where the computer can be used to support non-telephony functions such as databases that access the phone number of the remote party to allow a call operator to access information such as call history and products purchased to allow simplified customer service. As a result, the host computer cannot be treated as a dedicated system because other applications related to, but not directly supporting, the telephony functionality must be able to run on the processor without either degrading the media processing or being degraded by the media processing.
One skilled in the art will appreciate that in addition to audio processing, these system are often employed in the handling of video for videoconferencing and other related functions. The host processor is often employed to adjust the display of the video streams to suit the needs of the viewer. As the video processing for display, and the video processing for both the receiving and transmitting, along with the accompanying decoding and encoding, must be performed in real time, the use of expensive dedicated hardware has been relied upon to provide the stability demanded by users.
Therefore, it is desirable to provide a computer based system for processing media stream data that would have the media data processing carried out on the computer processor and that would not require DSPs on interfacing boards connected to the computer. Further, it is also desirable that the computer-based system provides excellent real-time processed media data while allowing undisrupted performance of other applications running on the computer.